#ifndef DES_H_
#define DES_H_

#include <stdint.h>
#include <stddef.h>

void des_init(uint64_t key);
size_t get_number_of_encrypted_bytes(size_t size_message);

void des_encrypt_bytes(uint8_t *out, const uint8_t *in, size_t size);
void des_encrypt_blocks(uint64_t *out, const uint64_t *in, size_t size);
uint64_t des_encrypt_block(uint64_t in);

void des_decrypt_bytes(uint8_t *out, size_t *size_out, const uint8_t *in, size_t size_in);
void des_decrypt_blocks(uint64_t *out, const uint64_t *in, size_t size);
uint64_t des_decrypt_block(uint64_t in);

#endif
